/*
 * @Description: 用户api 类型
 * @Author: chenju
 * @Date: 2021-11-08 15:37:36
 * @LastEditors: chenju
 * @LastEditTime: 2022-12-08 18:03:41
 */
// 用户列表（搜索） 请求参数
export interface GetUsersListParams {
  // 用户名（模糊搜索）
  realName?: Nullable<string>;
}

// 用户列表（搜索）响应参数
export type GetUsersListResultModel = {
  // 列表id
  id: number;
  // 用户ID
  userId: number;
  // 用户账号
  username: string;
  // 用户名称
  realName: string;
  // 电话
  phone: string;
  // 创建人
  createBy: string;
  // 创建时间
  createTime: string;
  // 是否展示操作按钮标志（仅能操作当前登录用户拥有的组织及其下属组织的账号）
  operateFlag: boolean;
  // 业务权限
  scopeMap: {
    [key: string]: string;
  };
  orgNames: string[];
  employeeNo: string;
  // 角色
  role: {
    [key: string]: string;
  };
}[];

// 新建/修改用户 请求参数
export interface CreateOrModifyUserParams {
  // 用户id
  userId?: number;
  // 用户名
  realName: string;
  // 用户账号
  username: string;
  // 电话
  phone: string | null;
  employeeNo: string;
  // 组织Id
  organizationIds: number[];
  // 用户角色
  roleCode: string[];
}

// 获取权限树列表 请求参数
export interface GetAuthTreeListParams {
  userId?: null | number;
}

// 获取权限树列表 响应的tree的单个项
export interface GetAuthTreeListTreeItem {
  // 树形节点-id
  id: number;
  // 组织编码
  organizationCode: string;
  // 组织名称
  organizationName: string;
  // 父级id
  parentId: number;
  // 父节点编码
  parentCode: string;
  // 根节点编码
  rootCode: string;
  // 排序
  sort: number;
  // 层级
  level: number;
  // 是否叶子结点
  isLeaf: boolean;
  // 是否属于下属组织 这里可以理解为树中的选中状态
  belong: boolean;
  // 是否能勾选
  enable: boolean;
  // 子节点列表
  children: null | GetAuthTreeListResultModel;
}
// 获取权限树列表 响应参数
export type GetAuthTreeListResultModel = GetAuthTreeListTreeItem[];

// 获取分scope的用户可选角色列表（足迹、盘查等） 响应参数
export type GetUserRoleListGroupByResult = ScopeRoleItem;

// 角色列表 单项
export interface ScopeRoleItem {
  id: number;
  roleCode: string;
  roleName: string;
}
